using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using SistemaProduccion.BIZ;
using Entidades;

namespace SistemaProduccion.GUI
{
    internal static class controladorObras
    {

        private static frmObras _formObras;

        private static frmObras FormObras
        {
            get 
            {
                if (controladorObras._formObras == null) { controladorObras._formObras = new frmObras(); }
                return controladorObras._formObras; }
            set { controladorObras._formObras = value; }
        }

        private static ctrObras _cObras;

        private static ctrObras cObras
        {
            get
            {
                if (controladorObras._cObras == null) { controladorObras._cObras = new ctrObras(); } 
                return controladorObras._cObras; }
            set { controladorObras._cObras = value; }
        }


        internal static Form mostrar()
        {
            if (FormObras.IsDisposed)
            {
                FormObras = null;
            }
            return FormObras;
        }

        internal static void listarObras(ref ListBox lstObras)
        {
            dtsObras dts = (dtsObras)cObras.listarObras();
            lstObras.DataSource = dts.Obra;
            lstObras.DisplayMember = dts.Obra.descripcionColumn.ColumnName;
            lstObras.ValueMember = dts.Obra.codObraColumn.ColumnName;
        }

        internal static void guardar(clsObra Obra)
        {
            dtsErrores dtsErr = cObras.guardar(Obra);
            if (hayError(dtsErr))
            {
                MessageBox.Show("Se guardo correctamente", "", MessageBoxButtons.OK);
            }
        }

        private static bool hayError(dtsErrores dtsErr)
        {
            bool rta = false;
            if (dtsErr.Error.Count > 0)
            {
                rta = (dtsErr.Error[0].hayError == 1);
            }
            return !rta;
        }

        internal static void eliminar(clsObra Obra)
        {
            dtsErrores dtsErr = cObras.eliminar(Obra);
            if (hayError(dtsErr))
            {
                MessageBox.Show("Se borro correctamente", "", MessageBoxButtons.OK);
            }
        }
    }
}
